home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
b
/
b.lha
/
B
/
src
/
bint
/
b2nod.h
< prev
next >
Wrap
Text File
|
1988-11-24
|
7KB
|
262 lines
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*
$Header: b2nod.h,v 1.4 85/08/22 16:42:43 timo Exp $
*/
/* Units */
typedef intlet typenode;
#define _Nodetype(len) ((len) & 0377)
#define _Nbranches(len) ((len) >> 8)
#define Nodetype(v) _Nodetype((v)->len)
#define Nbranches(v) _Nbranches((v)->len)
#define Branch(v, n) ((Ats(v)+(n)))
#define Unit(n) (n>=HOW_TO && n<=REFINEMENT)
#define Command(n) (n>=SUITE && n<=EXTENDED_COMMAND)
#define Expression(n) ((n>=TAG && n<=TAB_DIS)||(n>=TAGformal && n<=TAGzerprd))
#define Comparison(n) (n>=LESS_THAN && n<=UNEQUAL)
#define HOW_TO 0
#define YIELD 1
#define TEST 2
#define REFINEMENT 3
/* Commands */
#define SUITE 4
#define PUT 5
#define INSERT 6
#define REMOVE 7
#define CHOOSE 8
#define DRAW 9
#define SET_RANDOM 10
#define DELETE 11
#define CHECK 12
#define SHARE 13
#define WRITE 14
#define READ 15
#define READ_RAW 16
#define IF 17
#define WHILE 18
#define FOR 19
#define SELECT 20
#define TEST_SUITE 21
#define ELSE 22
#define QUIT 23
#define RETURN 24
#define REPORT 25
#define SUCCEED 26
#define FAIL 27
#define USER_COMMAND 28
#define EXTENDED_COMMAND 29
/* Expressions, targets, tests */
#define TAG 30
#define COMPOUND 31
/* Expressions, targets */
#define COLLATERAL 32
#define SELECTION 33
#define BEHEAD 34
#define CURTAIL 35
/* Expressions, tests */
#define UNPARSED 36
/* Expressions */
#define MONF 37
#define DYAF 38
#define NUMBER 39
#define TEXT_DIS 40
#define TEXT_LIT 41
#define TEXT_CONV 42
#define ELT_DIS 43
#define LIST_DIS 44
#define RANGE_DIS 45
#define TAB_DIS 46
/* Tests */
#define AND 47
#define OR 48
#define NOT 49
#define SOME_IN 50
#define EACH_IN 51
#define NO_IN 52
#define SOME_PARSING 53
#define EACH_PARSING 54
#define NO_PARSING 55
#define MONPRD 56
#define DYAPRD 57
#define LESS_THAN 58
#define AT_MOST 59
#define GREATER_THAN 60
#define AT_LEAST 61
#define EQUAL 62
#define UNEQUAL 63
#define Nonode 64
#define TAGformal 65
#define TAGlocal 66
#define TAGglobal 67
#define TAGmystery 68
#define TAGrefinement 69
#define TAGzerfun 70
#define TAGzerprd 71
#define ACTUAL 72
#define FORMAL 73
value node1();
value node2();
value node3();
value node4();
value node5();
value node6();
value node8();
value node9();
typenode nodetype();
/* Procedure display(); */
/* Procedure fix_nodes(); */
#define First_fieldnr 0
#define UNIT_NAME First_fieldnr
#define HOW_FORMALS First_fieldnr + 1 /* HOW'TO */
#define HOW_COMMENT First_fieldnr + 2
#define HOW_SUITE First_fieldnr + 3
#define HOW_REFINEMENT First_fieldnr + 4
#define HOW_R_NAMES First_fieldnr + 5
#define HOW_NLOCALS First_fieldnr + 6
#define FPR_ADICITY First_fieldnr + 1 /* YIELD, TEST */
#define FPR_FORMALS First_fieldnr + 2
#define FPR_COMMENT First_fieldnr + 3
#define FPR_SUITE First_fieldnr + 4
#define FPR_REFINEMENT First_fieldnr + 5
#define FPR_R_NAMES First_fieldnr + 6
#define FPR_NLOCALS First_fieldnr + 7
#define FML_KEYW First_fieldnr /* FORMALS HOW'TO */
#define FML_TAG First_fieldnr + 1
#define FML_NEXT First_fieldnr + 2
#define SUI_LINO First_fieldnr /* SUITE */
#define SUI_CMD First_fieldnr + 1
#define SUI_COMMENT First_fieldnr + 2
#define SUI_NEXT First_fieldnr + 3
#define REF_NAME First_fieldnr /* REFINEMENT */
#define REF_COMMENT First_fieldnr + 1
#define REF_SUITE First_fieldnr + 2
#define REF_NEXT First_fieldnr + 3
#define REF_START First_fieldnr + 4
#define PUT_EXPR First_fieldnr /* PUT */
#define PUT_TARGET First_fieldnr + 1
#define INS_EXPR First_fieldnr /* INSERT */
#define INS_TARGET First_fieldnr + 1
#define RMV_EXPR First_fieldnr /* REMOVE */
#define RMV_TARGET First_fieldnr + 1
#define CHS_TARGET First_fieldnr /* CHOOSE */
#define CHS_EXPR First_fieldnr + 1
#define DRW_TARGET First_fieldnr /* DRAW */
#define SET_EXPR First_fieldnr /* SET'RANDOM */
#define DEL_TARGET First_fieldnr /* DELETE */
#define CHK_TEST First_fieldnr /* CHECK */
#define SHR_TARGET First_fieldnr /* SHARE */
#define WRT_L_LINES First_fieldnr /* WRITE */
#define WRT_EXPR First_fieldnr + 1
#define WRT_R_LINES First_fieldnr + 2
#define RD_TARGET First_fieldnr /* READ */
#define RD_EXPR First_fieldnr + 1
#define RDW_TARGET First_fieldnr /* READ'RAW */
#define IF_TEST First_fieldnr /* IF */
#define IF_COMMENT First_fieldnr + 1
#define IF_SUITE First_fieldnr + 2
#define WHL_TEST First_fieldnr /* WHILE */
#define WHL_COMMENT First_fieldnr + 1
#define WHL_SUITE First_fieldnr + 2
#define FOR_TARGET First_fieldnr /* FOR */
#define FOR_EXPR First_fieldnr + 1
#define FOR_COMMENT First_fieldnr + 2
#define FOR_SUITE First_fieldnr + 3
#define SLT_COMMENT First_fieldnr /* SELECT */
#define SLT_TSUITE First_fieldnr + 1
#define TSUI_LINO First_fieldnr /* TEST SUITE */
#define TSUI_TEST First_fieldnr + 1
#define TSUI_COMMENT First_fieldnr + 2
#define TSUI_SUITE First_fieldnr + 3
#define TSUI_NEXT First_fieldnr + 4
#define ELSE_LINO First_fieldnr /* ELSE */
#define ELSE_COMMENT First_fieldnr + 1
#define ELSE_SUITE First_fieldnr + 2
#define RTN_EXPR First_fieldnr /* RETURN */
#define RPT_TEST First_fieldnr /* REPORT */
#define UCMD_NAME First_fieldnr /* USER COMMAND */
#define UCMD_ACTUALS First_fieldnr + 1
#define UCMD_DEF First_fieldnr + 2
#define ACT_KEYW First_fieldnr /* ACTUALS USER COMMAND */
#define ACT_EXPR First_fieldnr + 1
#define ACT_NEXT First_fieldnr + 2
#define ACT_START First_fieldnr + 3
#define ECMD_NAME First_fieldnr /* EXTENDED COMMAND */
#define ECMD_ACTUALS First_fieldnr + 1
#define COMP_FIELD First_fieldnr /* COMPOUND */
#define COLL_SEQ First_fieldnr /* COLLATERAL */
#define MON_NAME First_fieldnr /* MONADIC FUNCTION */
#define MON_RIGHT First_fieldnr + 1
#define MON_FCT First_fieldnr + 2
#define DYA_NAME First_fieldnr + 1 /* DYADIC FUNCTION */
#define DYA_LEFT First_fieldnr
#define DYA_RIGHT First_fieldnr + 2
#define DYA_FCT First_fieldnr + 3
#define TAG_NAME First_fieldnr /* TAG */
#define TAG_ID First_fieldnr + 1
#define NUM_VALUE First_fieldnr /* NUMBER */
#define NUM_TEXT First_fieldnr + 1
#define XDIS_QUOTE First_fieldnr /* TEXT DIS */
#define XDIS_NEXT First_fieldnr + 1
#define XLIT_TEXT First_fieldnr /* TEXT LIT */
#define XLIT_NEXT First_fieldnr + 1
#define XCON_EXPR First_fieldnr /* TEXT CONV */
#define XCON_NEXT First_fieldnr + 1
#define LDIS_SEQ First_fieldnr /* LIST DIS */
#define RDIS_LWB First_fieldnr /* RANGE DIS */
#define RDIS_UPB First_fieldnr + 1
#define TDIS_SEQ First_fieldnr /* TAB_DIS */
#define SEL_TABLE First_fieldnr /* SELECTION */
#define SEL_KEY First_fieldnr + 1
#define TRIM_LEFT First_fieldnr /* BEHEAD, CURTAIL */
#define TRIM_RIGHT First_fieldnr + 1
#define UNP_SEQ First_fieldnr /* UNPARSED */
#define UNP_TEXT First_fieldnr + 1
#define AND_LEFT First_fieldnr /* AND */
#define AND_RIGHT First_fieldnr + 1
#define OR_LEFT First_fieldnr /* OR */
#define OR_RIGHT First_fieldnr + 1
#define NOT_RIGHT First_fieldnr /* NOT */
#define QUA_TARGET First_fieldnr /* QUANTIFICATION */
#define QUA_EXPR First_fieldnr + 1
#define QUA_TEST First_fieldnr + 2
#define REL_LEFT First_fieldnr /* ORDER TEST */
#define REL_RIGHT First_fieldnr + 1